<?php
// +----------------------------------------------------------------------
// | 有理想的地方，地狱都是天堂。
// +----------------------------------------------------------------------
// | Copyright @ df81.com 版权所有
// +----------------------------------------------------------------------
// | 作者: 南国老符 邮箱：1062129401@qq.com
// +----------------------------------------------------------------------

namespace app\admin\controller;
use think\facade\View;
use think\facade\Db;

class Sms extends Base{
    // 列表
    public function index(){
        // 默认可用网关
        $gateways = config('sms.sms.default.gateways');
        View::assign('gateways',$gateways);
        
        return view();
    }

    // 编辑
    public function edit(){
        $type = input('type');
        // 默认可用网关
        $gateways = config('sms.sms.default.gateways');

        if(!request()->isPost()){
            $where[] = ['signid','=',1]; $where[] = ['temp_type','=','sms']; $where[] = ['lang','=',$this->lang];
            $template = Db::name('send_template')->where($where)->select();
            View::assign('template',$template);

            View::assign('gateways',$gateways);
            return view($type);
        }else{
            // 参数错误
            if(!in_array($type,array('qcloud'))){
                return json(['code' => 1001, 'msg' => lang('c_error_parameter'), 'data' => array('type'=>$type)]);
            }
            //发送验证码模板
            $captcha_template = input('captcha_template');
            //需发送短信的功能
            $feedback_array = input('feedback/a');
            $feedback = empty($feedback_array) ? 0 : $feedback_array[0];
            //留言短信模板
            $feedback_template = input('feedback_template');
            // 管理员手机
            $admin_mobile = input('admin_mobile');
            // 发送记录写入数据库
            $insert_database = input('insert_database');
            // 腾讯云
            $qcloud_signname = config('sms.sms.gateways.qcloud.sign_name');

            // 短信
            switch ($type) {
                // 腾讯云
                case 'qcloud':
                    $qcloud_signname = input('qcloud_signname');
                    // 启用网关
                    // if(input('enable') == 1 and !in_array('qcloud', $gateways)){
                    if(!in_array('qcloud', $gateways)){
                        $gateways[] = 'qcloud';
                    }else{
                        $gateways = array_merge(array_diff($gateways, array('qcloud')));
                    }
                    break;
            }

            $qcloud_appid = input('qcloud_appid');
            if($qcloud_appid == '******') $qcloud_appid = config('sms.sms.gateways.qcloud.sdk_app_id');
            $qcloud_appkey = input('qcloud_appid');
            if($qcloud_appkey == '******') $qcloud_appkey = config('sms.sms.gateways.qcloud.app_key');

            // 网关
            $gateStr = '';
            foreach ($gateways as $gateVal) {
                $gateStr .= '\''.$gateVal.'\',';
            }

            $smsNewContent = "<?php
            // 短信
            return [
                // 需发送短信的功能
                'sendsms' => [
                    'feedback' => ".$feedback.",
                ],
                // 短信发送模板
                'template' => [
                    'captcha' => ".$captcha_template.",
                    'feedback' => ".$feedback_template.",
                ],
                // 管理员手机
                'admin_mobile' => '".$admin_mobile."',
                // 发送记录写入数据库
                'insert_database' => ".$insert_database.",
                'sms' => [
                    // HTTP 请求的超时时间（秒）
                    'timeout' => 5.0,
                    // 默认发送配置
                    'default' => [
                        // 网关调用策略，默认：顺序调用
                        'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
                        // 默认可用的发送网关
                        'gateways' => [
                            ".$gateStr."
                        ],
                    ],
                    // 可用的网关配置
                    'gateways' => [
                        'errorlog' => [
                            'file' => app()->getRootPath().'runtime/easywechat/sms.log',
                        ],
                        'qcloud' => [
                            'sdk_app_id' => '".$qcloud_appid."',
                            'app_key' => '".$qcloud_appkey."',
                            'sign_name' => '".$qcloud_signname."',
                        ],
                    ],
                ],
            ];";

            try {
                //修改社交配置
                $smsPath = app()->getConfigPath().'sms.php';
                $dofile = new \common\Dofile();
                $dofile->editFile($smsPath,file_get_contents($smsPath),$smsNewContent);
                return json(['code' => 200, 'msg' => lang('c_success'), 'data' => '']);
            } catch (Exception $e) {
                return json(['code' => 500, 'msg' => $e->getMessage(), 'data' => '']);
            }
        }
    }
}